package com.itheima.lambda.lambdaTest2;

/**
 * @Author 王加鑫
 * @Date 2021/5/9 18:18
 * @Version 1.0
 * 实现接口的三种方法
 */
public class GetNumberTest {
    public static void main(String[] args) {
        //接口引用指向实现类对象(多态的使用)
        GetNumber getNumber = new GetNumberImpl();
        System.out.println( getNumber.add(10,20));

        /*
        2 匿名内部类
         */
        GetNumber getNumber1 = new GetNumber() {
            @Override
            public int add(int a, int b) {
                return a + b;
            }
        };
        System.out.println(getNumber1.add(20,40));

        /*
        3 lambda表达式
        = 右边同匿名内部类一样为接口的实现类对象
         */
        GetNumber getNumber2 = (a,b) -> {
            return a + b;
        };
        System.out.println(getNumber2.add(50,50));
    }
}


/*
1 实现类的方式
 */
class GetNumberImpl implements GetNumber{

    @Override
    public int add(int a, int b) {
        return a + b;
    }
}




